const Koa=require("koa");
let app=new Koa();
/* 
koa的级联中间件
    1.按照app.use的代码定义顺序按序执行 
    2.默认app.use的代码如果没有调用next函数，后续的所有app.use方法将不会执行
    3.为了让app.use能够按照顺序依次执行，必须在对应的app.use的回调函数中的合适的位置完成next函数调用
    
    
*/

/* koa引入中间件的概念，其目的是为了拆分功能函数
处理函数默认第二个参数会接收一个next promise函数对象，该对象用于完成中间的链接操作
koa中当一个中间件调用next()，则该中间件函数暂停并控制传递给定义的下一个中间件
 */
app.use(async function(ctx,next){
    console.log("请求已到达");
    await next();
    console.log("响应完成");
});
app.use(async function(ctx){
    console.log("====>处理响应结果");
    ctx.body="<h2>测试koa服务器</h2>";
 
});
app.listen(3000);